package com.project.mapper;

import com.project.bean.CutPageBean;
import com.project.bean.ProductBean;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

/**
 * 持久接口
 */
public interface IProductMapper {
    /**
     * 添加商品
     * @param product 商品对象
     * @return  商品的id
     */
    int add(ProductBean product);

    /**
     * 按id删除商品
     * @param id 商品id
     */
    void del(int id);

    /**
     * 按id修改商品价格
     * @param id 商品id
     * @param price 商品价格
     */
    void update(@Param("id") int id,@Param("price") int price);

    /**
     * 通过id查询商品
     * @param id 商品id
     * @return 商品对象
     */
    ProductBean findById(int id);

    /**
     * 统计动态查询结果记录
     * @param factory 生产厂商
     * @param price 价格范围
     * @return 记录数
     */
    int countByItem(@Param("factory") String factory, @Param("price") int price);

    List<ProductBean> findByItem(@Param("factory") String factory,
                                 @Param("price") int price, @Param("start")int start,@Param("pageSize") int pageSize);

    int countByDate(@Param("factory") String factory, @Param("start")LocalDate start,@Param("end")LocalDate end);

    List<ProductBean> cutByDate(@Param("factory") String factory, @Param("start") LocalDate start,
              @Param("end") LocalDate end,@Param("startPage") int startPage,@Param("pageSize") int pageSize);
}
